package com.ysl.netty.server;

import com.ysl.netty.handler.ServerHandler;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.SocketChannel;
import io.netty.handler.codec.string.StringDecoder;
import io.netty.handler.codec.string.StringEncoder;

import java.nio.charset.Charset;

public class MyServerInitializer extends ChannelInitializer<SocketChannel> {

	@Override
    protected void initChannel(SocketChannel ch) throws Exception {
        ChannelPipeline pipeline = ch.pipeline();
        /*
            LengthFieldBasedFrameDecoder 解码器
            LengthFieldPrepender 编码器
        */
        /*pipeline.addLast(new LengthFieldBasedFrameDecoder(Integer.MAX_VALUE,0,4,0,4));
        pipeline.addLast(new LengthFieldPrepender(4));*/

        //UTF_8统一编码格式，不支持中文
        /*pipeline.addLast(new StringDecoder(CharsetUtil.UTF_8));
        pipeline.addLast(new StringEncoder(CharsetUtil.UTF_8));*/

        //直接接受中文编码格式    解码格式
        pipeline.addLast(new StringEncoder(Charset.forName("GBK")));
        pipeline.addLast(new StringDecoder(Charset.forName("GBK")));

        //pipeline.addLast(new MyServerHandler());
        pipeline.addLast(new ServerHandler());

    }
}
